home *** CD-ROM | disk | FTP | other *** search
/ The Arsenal Files 6 / The Arsenal Files 6 (Arsenal Computer).ISO / sync / bang2.zip / BANG.NOT < prev    next >
Text File  |  1996-03-09  |  14KB  |  410 lines

  1. # ┌────────[ BANG Ver 2.0 - The Russian Roulette Credit Lottery ]────────────┐
  2. # │                                                                          │
  3. # │              Original Script by:  Charles McColm (Oct 1995)              │
  4. # │         Revised & Notated  Script by:  Robert Nykvist (Mar 1996)         │
  5. # │                                                                          │
  6. # │    Revision Coded for *SynchronetBBS ver 2.20 rev B using *Baja 2.04     │
  7. # │          This script may not work on older or newer versions.            │
  8. # │                                                                          │
  9. # │    If this code is modified, please give authors appropriate credit.     │
  10. # └──────────────────────────────────────────────────────────────────────────┘
  11.  
  12. # For Node_action Variable
  13. !include nodedefs.inc
  14.  
  15.  
  16. # ┌──────────────────────────┐
  17. # │ Define Integer Variables │
  18. # └──────────────────────────┘
  19. # Counter for Loops
  20. int COUNT
  21.  
  22. # Chamber Bullet is in (Random Selected)
  23. int CHAMBER
  24.  
  25. # How many times to pull the trigger (Player selected)
  26. int ROUNDS
  27.  
  28. # Total Winnings
  29. int WINNINGS
  30.  
  31.  
  32. # ┌─────────────┐
  33. # │ Top of Menu │
  34. # └─────────────┘
  35. :top
  36. cls
  37. crlf
  38. crlf
  39. print "nr                                ▀▄▀▄▀▄▀▄▀▄▀▄▀\r\n"
  40. print "yh                                    BANG!\r\n"
  41. print "nr                                ▄▀▄▀▄▀▄▀▄▀▄▀▄"
  42. crlf
  43. crlf
  44. crlf
  45. print "\r\nhw                                                         <───n──┐"
  46. print "\r\n               hr¡n                                               │"
  47. print "\r\nh               r∙  w            I - cBANG Info hk                   │"
  48. print "\r\nhk               │w              F - mFire Away  hk                  │"
  49. print "\r\nhk               │w              Q - gQuit to the BBS              r∙"
  50. print "\r\nn               │hw                                               r¡"
  51. print "\r\nn               └──wh──>"
  52.  
  53.  
  54. # ┌─────────────────────────────┐
  55. # │ Defining Node Action Area & │
  56. # │ ASYNC Call before Prompts   │
  57. # └─────────────────────────────┘
  58. node_action node_xtrn
  59. async
  60.  
  61.  
  62. # ┌────────────────┐
  63. # │ Command Prompt │
  64. # └────────────────┘
  65. getcmd fiq?
  66. logkey_comma
  67.  
  68.  
  69. # ┌────────────────┐
  70. # │ Redisplay Menu │
  71. # └────────────────┘
  72. cmdkey ?
  73.   goto top
  74. end_cmd
  75.  
  76.  
  77. # ┌─────────────────┐
  78. # │ Quit the Script │
  79. # └─────────────────┘
  80. cmdkey q
  81.   goto byebye
  82. end_cmd
  83.  
  84.  
  85. # ┌───────────────────┐
  86. # │ Display Info Menu │
  87. # └───────────────────┘
  88. cmdkey i
  89.   cls
  90.   crlf
  91.   crlf
  92.   crlf
  93.   print "                                  nhirWARNING\r\n\r\n"
  94.   print "                  ncThis BBS's h44 Magnum ncgun has hsix ncchambers.\r\n"
  95.   print "                When you pull the trigger on an empty chamber,\r\n"
  96.   print "                       you instantly get hm50k nccredits.\r\n\r\n"
  97.   print "                  If you lose in Russian Roulette, you hgdie.\r\n"
  98.   print "                  yBANG ncis a stupid game with high risk too!\r\n\r\n"
  99.   print "        If you pull the trigger when there is a bullet in the chamber,\r\n"
  100.   print "               the hBBS hangs upnc, and you hlose 30 minutes nctime.n\r\n\r\n"
  101.   print "             rhNEVERnc stick amh realnc gun to your head for any reason!n\r\n\r\n"
  102.   print "                                 @PAUSE@"
  103.   goto top
  104. end_cmd
  105.  
  106.  
  107. # ┌──────────────────────────────┐
  108. # │ Fire The Gun (Play the Game) │
  109. # └──────────────────────────────┘
  110. cmdkey f
  111.  
  112.  
  113. # ┌──────────────────────────────────────┐
  114. # │ Setting/Resetting Variables to Zero  │
  115. # └──────────────────────────────────────┘
  116.     set WINNINGS 0
  117.     set COUNT 0
  118.     set CHAMBER 0
  119.     set ROUNDS 0
  120.  
  121.  
  122. # ┌────────────────────────────────────────────────────┐
  123. # │ "Which of 6 chambers is the bullet in?             │
  124. # │ Choose Random Number 0-5 for variable "chamber."   │
  125. # │ Add 1 to "Chamber" making it 1-6, instead of 0-5.  │
  126. # └────────────────────────────────────────────────────┘
  127.     random CHAMBER 6
  128.     add CHAMBER 1
  129.  
  130.  
  131. # ┌─────────────────────────────────────────────┐
  132. # │ User Input Menu for Number of Trigger Pulls │
  133. # └─────────────────────────────────────────────┘
  134.     cls
  135.     crlf
  136.     print "yhLoading bOne yBullet into the Gun.\r\n"
  137.     crlf
  138.     print "rhPull trigger how many times?y (w1-5y)r : "
  139.  
  140.  
  141. # ┌───────────────────────────────────────────────────────┐
  142. # │ Prompting User for number of trigger pulls, maximum 5 │
  143. # └───────────────────────────────────────────────────────┘
  144.     getnum ROUNDS 5
  145.     crlf
  146.  
  147.  
  148. # ┌─────────────────────────────────────────────────────────────┐
  149. # │ Pressing "Q" sometimes gave a "negative" (-1) number and    │
  150. # │ locked script in a non-stop loop.  This prevents negatives. │
  151. # │ If you know why "getnum" accepts letter Q, let me know!  RN │
  152. # └─────────────────────────────────────────────────────────────┘
  153.     compare ROUNDS 0
  154.       if_less
  155.         goto top
  156.       end_if
  157.  
  158.  
  159. # ┌──────────────────────────────────────────────────┐
  160. # │ Display formality - Send User "Time" or "Times?" │
  161. # └──────────────────────────────────────────────────┘
  162.     compare ROUNDS 1
  163.         if_true
  164.           printf "mhPulling triggery %1ld mtime...\r\n" ROUNDS
  165.           crlf
  166.           print "whAiming at gYOURh head @USER@, cocking hammer back...yReady?\r\n"
  167.           crlf
  168.           pause
  169.         else
  170.           printf "mhPulling triggery %1ld mtimes...\r\n" ROUNDS
  171.           crlf
  172.           print "whAiming at gYOUR whead @USER@, cocking hammer back...yReady?\r\n"
  173.           crlf
  174.           pause
  175.         end_if
  176.  
  177.  
  178. # ┌─────────────────────────────────────────────────────────┐
  179. # │  Pulls of the trigger compared to bullet chamber.       │
  180. # │  *Is the user going to blow their brains out?*  Yes/No? │
  181. # │  If number of pulls is less than the bullet chamber,    │
  182. # │  the caller LIVES.  If the number of pulls equals or    │
  183. # │  exceeds the bullet chamber number, SPLAT!              │
  184. # └─────────────────────────────────────────────────────────┘
  185. compare ROUNDS CHAMBER
  186.   if_less
  187.  
  188.  
  189. # ┌──────────────────────────────────────────────────────┐
  190. # │ Trigger pulls less than bullet chamber number.       │
  191. # │ User Lives!  Beginning LIVES Loop                    │
  192. # └──────────────────────────────────────────────────────┘
  193.     :LIVES
  194.  
  195.  
  196. # ┌──────────────────────────────────────────────────────┐
  197. # │ Loop to display the number of rounds user shot.      │
  198. # │ Variable COUNT tracks loop count. (Bullets shot)     │
  199. # └──────────────────────────────────────────────────────┘
  200.     compare COUNT ROUNDS
  201.       if_true
  202.  
  203. # ┌──────────────────────────────────────────────────────┐
  204. # │ User Lives!  Send User to DONELOOP after last shot.  │
  205. # └──────────────────────────────────────────────────────┘
  206.         goto doneloop
  207.       end_if
  208.  
  209.  
  210. # ┌──────────────────────────────────────────────────────┐
  211. # │ Customize your system feedback to your callers.      │
  212. # └──────────────────────────────────────────────────────┘
  213.         switch COUNT
  214.           case 0
  215.  
  216.  
  217. # ┌───────────────────────────────────────────────────────┐
  218. # │ Send remote caller an ASCII Bell for each shot fired. │
  219. # └───────────────────────────────────────────────────────┘
  220.             print_remote ""
  221.             print "hrCLICK! ;; b(W h e w!)\r\n"
  222.           end_case
  223.           case 1
  224.             print_remote ""
  225.             print "hgCLICK! ;; b(W h e w!  You are a brave person!)\r\n"
  226.           end_case
  227.           case 2
  228.             print_remote ""
  229.             print "hyCLICK! ;; b(J e e s h!  Three rounds?  You gotta be nuts!)\r\n"
  230.           end_case
  231.           case 3
  232.             print_remote ""
  233.             print "hcCLICK! ;; b(Y e o w!  4 squeezes?  You must wanna logoff!)\r\n"
  234.           end_case
  235.           case 4
  236.             print_remote ""
  237.             print "hmCLICK! ;; b(W O W!  You got big nads or are suicidal!)\r\n"
  238.             print "\r\ny*BONUS* 100k Credits!\r\n"
  239.             log "$+ BONUS credit adjustment: 100k"
  240.             adjust_user_credits 100
  241.             add WINNINGS 100
  242.           end_case
  243.         end_switch
  244.  
  245.  
  246. # ┌──────────────────────────────────────────────────────┐
  247. # │ Award user credits each trigger pull and log results │
  248. # │ pausing display for user between rounds shot.        │
  249. # └──────────────────────────────────────────────────────┘
  250.     adjust_user_credits 50
  251.     add WINNINGS 50
  252.     log "$+ credit adjustment: 50k"
  253.     crlf
  254.     pause
  255.     add COUNT 1
  256.  
  257.  
  258. # ┌──────────────────────────┐
  259. # │ End of Caller Lives Loop │
  260. # └──────────────────────────┘
  261.     goto LIVES
  262. else
  263.  
  264.  
  265. # ┌─────────────────────────────────────────────────────┐
  266. # │ Number of rounds shot exceed bullet chamber number! │
  267. # │ SPLAT goes the User - Beginning of SPLAT Loop       │
  268. # │ Variable COUNT loop.  User dies, but on which shot? │
  269. # └─────────────────────────────────────────────────────┘
  270.   :SPLAT
  271.   add COUNT 1
  272.  
  273.  
  274. # ┌─────────────────────────────────────────────────────────┐
  275. # │ Kill the user only during the live round in the chamber │
  276. # │ Variable "chamber" is compared to "count" of loop.      │
  277. # └─────────────────────────────────────────────────────────┘
  278.     compare COUNT CHAMBER
  279.       if_equal
  280.  
  281.  
  282. # ┌───────────────────────────────────────────────────────────────┐
  283. # │ If count=chamber, bullet is in chamber.  User pays the price! │
  284. # │ Use ARS security for salvation to valued callers.  <Grin>     │
  285. # └───────────────────────────────────────────────────────────────┘
  286.         compare_ars level 50
  287.           if_true
  288.             goto lucky
  289.           end_if
  290.  
  291.  
  292. # ┌───────────────────────────────────────────────────┐
  293. # │ Die User!  Punish them as you see fit.  <Chuckle> │
  294. # └───────────────────────────────────────────────────┘
  295.         print "chBANG!  ;; r SPLAT... ;; g T,H,U,D,!\r\n"
  296.         print "\r\nch,You bblewc your brains out y@USER@! c Whadda rBloodyc Mess!\r\n"
  297.         print "\r\nhw,You have just fallen down and you can't get up.b  HaHa!\r\n"
  298.         print "\r\nm,Subtracting y30 mminutes!  Call again...if you have time...gGoodbye...\r\n"
  299.         adjust_user_minutes -30
  300.         log ">> minute adjustment: -30"
  301.         crlf
  302.         pause
  303.         hangup
  304.       else
  305.  
  306.  
  307. # ┌─────────────────────────────────────────────────────┐
  308. # │ Trigger pulled on empty chamber.  User still lives. │
  309. # │ Uses Switch/Case loop for visual feedback to User.  │
  310. # └─────────────────────────────────────────────────────┘
  311.         switch COUNT
  312.           case 1
  313.             print_remote ""
  314.             print "hrCLICK! ;; b(W h e w!)\r\n"
  315.           end_case
  316.           case 2
  317.             print_remote ""
  318.             print "hgCLICK! ;; b(W h e w!  You are a brave person!)\r\n"
  319.           end_case
  320.           case 3
  321.             print_remote ""
  322.             print "hyCLICK! ;; b(J e e s h!  Three rounds?  You gotta be nuts!)\r\n"
  323.           end_case
  324.           case 4
  325.             print_remote ""
  326.             print "hcCLICK! ;; b(Y e o w!  4 squeezes?  You must wanna logoff!)\r\n"
  327.           end_case
  328.           case 5
  329.             print_remote ""
  330.             print "hmCLICK! ;; b(W O W!  You got big nads or you are suicidal!)\r\n"
  331.             print "\r\nyi*nhwBONUSyi* nch100k ncCredits!\r\n"
  332.           end_case
  333.         end_switch
  334.       crlf
  335.       pause
  336.  
  337.  
  338. # ┌───────────────────┐
  339. # │ End of SPLAT Loop │
  340. # └───────────────────┘
  341.         goto SPLAT
  342.       end_if
  343.   end_if
  344.  
  345.  
  346. # ┌─────────────────────────────────────────────────────────┐
  347. # │ End of Firing Gun Option.  Return to Menu if User Lives │
  348. # └─────────────────────────────────────────────────────────┘
  349.   goto top
  350. end_cmd
  351.  
  352.  
  353. # ┌──────────────────────────────────────┐
  354. # │ Just in case something goes wrong... │
  355. # └──────────────────────────────────────┘
  356. goto top
  357.  
  358.  
  359. # ┌──────────────────────────────────────────────────────────────┐
  360. # │ Caller played Russian Roulette (BANG) and lived.  Reward'em! │
  361. # │ Go to Top of menu and see if they want to play again. YeeHa! │
  362. # └──────────────────────────────────────────────────────────────┘
  363. :doneloop
  364.   print "chYou took a HUGE risk and msurvived! c Congratulations!\r\n"
  365.   printf "\r\nhgAddingy %ld k gCredits to your Account!\r\n" WINNINGS
  366.   crlf
  367.   pause
  368.   goto top
  369.  
  370.  
  371. # ┌──────────────────────────────┐
  372. # │ Bailout for ARS LUCKY users. │
  373. # │ Go to Top of menu and see    │
  374. # │ if they want to play again.  │
  375. # └──────────────────────────────┘
  376. :lucky
  377.   print "chYou just rblewc your brains out g@USER@! c But because of your high\r\n"
  378.   print "security level though, you were mNOTc disconnected from the BBS.\r\n"
  379.   crlf
  380.   pause
  381.   print "mSubtracting y30 mminutes from your on-line time today!\r\n"
  382.   crlf
  383.   adjust_user_minutes -30
  384.   log ">> minute adjustment: -30"
  385.   pause
  386.   goto top
  387.  
  388.  
  389. # ┌─────────────┐
  390. # │ Exit Script │
  391. # └─────────────┘
  392. :byebye
  393.  
  394.  
  395. # ┌─────────────────────┐
  396. # │ Source of Softwares │
  397. # └─────────────────────┘
  398. #
  399. #           *BAJA v2.04 · Synchronet Shell/Module Compiler ·
  400. #
  401. #           *Synchronet Multinode BBS Software Version 2.20 Rev B
  402. #
  403. #                      Copyright 1995 Digital Dynamics
  404. #                                 PO Box 501
  405. #                           Yorba Linda, CA 92686
  406. #
  407. #              Voice: 714-529-6328    BBS: 714-529-9525 V.32bis
  408. #              FAX: 714-529-9721                 529-9547 V.FC
  409. #              FIDO: 1:103/705                   529-9721 ZyXEL
  410.